/**
 * @FileName: ApplicationRepository.java
 * @Package: top.swimmer.boot.annotation
 * @author youshipeng
 * @created 2017/5/5 11:49
 * <p>
 * Copyright 2016 ziroom
 */
package top.swimmer.core.annotation;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

import java.lang.annotation.*;

/**
 * <p></p>
 *
 * <PRE>
 * <BR>	修改记录
 * <BR>-----------------------------------------------
 * <BR>	修改日期			修改人			修改内容
 * </PRE>
 *
 * @author youshipeng
 * @since 1.0
 * @version 1.0
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Repository
@SpringBootApplication
public @interface ApplicationRepository {
    @AliasFor(
            annotation = SpringBootApplication.class,
            attribute = "exclude"
    )
    Class<?>[] exclude() default {};

    @AliasFor(
            annotation = SpringBootApplication.class,
            attribute = "excludeName"
    )
    String[] excludeName() default {};

    @AliasFor(
            annotation = SpringBootApplication.class,
            attribute = "scanBasePackages"
    )
    String[] scanBasePackages() default {};

    @AliasFor(
            annotation = SpringBootApplication.class,
            attribute = "scanBasePackageClasses"
    )
    Class<?>[] scanBasePackageClasses() default {};

    @AliasFor(
            annotation = Service.class,
            attribute = "value"
    )
    String value() default "";
}